package com.weng.coder.service;

import java.util.List;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.weng.coder.common.exception.ServiceException;
import com.weng.coder.entity.Project;
import com.weng.framework.core.model.ResponseData;

/**
 * 项目 业务实现接口
 *
 * @作者 wengzhonghui
 * @创建时间 2018-02-24 10:16:58
 */
public interface ProjectService   {

	Project save(Project t);

	/**
	 * 删除
	 */
	public ResponseData removeByIds(String ids);
	/**
	 * 获取分页数据
	 * 
	 * @author wengzhonghui 2017年7月19日
	 * @param pageNo 页码
	 * @param pageSize 每页显示数据
	 * @return
	 */
	IPage<Project> getDataByPage(int pageNo, int pageSize, String name,  String userId);
	
	/**
	 * 获取用户项目列表
	 * 
	 * @author wengzhonghui 2017年7月19日
	 * @return
	 */
	List<Project> getProjectListByUser(String name,Boolean isBuildIn,String userId);
	
	/**
     * 同步表、列、字段数据
     *
     * @param projectId
     * @return
     */
    boolean synchronize(String projectId) throws ServiceException;
    
    
    /**
     * 同步表、列、字段数据
     *
     * @return
     */
    boolean synchronize(Project project) throws ServiceException;
    
    /**
     * 复制项目
     * @param projectId
     * @return
     */
    boolean copyProject(String projectId,String userId);
    
    /**
     * 删除项目相关信息
     * @return
     */
    ResponseData deleteProjectOfRelate(String projectId, String userId);

		void delete(Project t);

		Project getOne(String id);

		boolean exists(String id);

		void delete(Iterable<Project> entities);

		void deleteByIds(String[] ids);
}
